package org.feng.utils;

import cn.hutool.core.io.file.FileNameUtil;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.crypto.digest.DigestUtil;

import java.io.InputStream;

/**
 * 上传工具类
 *
 * @author : FengShuai
 * @since : 2024/1/31 10:43
 */
public class UploadFileUtils {
    /**
     * 获取上传的文件名（保证不重复）
     *
     * @param fileName 文件原名
     * @return 文件名
     */
    public static String getFileName(String fileName) {
        String extName = FileNameUtil.extName(fileName);
        return StrUtil.isNotEmpty(extName) ? IdUtil.getSnowflakeNextIdStr() + "." + extName : IdUtil.getSnowflakeNextIdStr();
    }

    /**
     * 获取文件md5
     *
     * @param inputStream 文件流
     * @return md5
     */
    public static String getFileMd5(InputStream inputStream) {
        if (inputStream == null) {
            return null;
        }
        return DigestUtil.md5Hex(inputStream);
    }
}
